#include<bits/stdc++.h>
using namespace std;

const int N=2e5+5;

bool solve(){
    int n,t;
    cin>>n;
    vector<int> pos(N+5,0);
    vector<int> pos1(N+5,0);
    vector<int> nums(N+5,0);
    vector<int> nums1(N+5,0);
    vector<int> c;
    for(int i=1;i<=n;i++){
        cin>>t;
        nums[i]=t;
        pos1[t]=i;
    }
    for(int i=1;i<=n;i++){
        cin>>t;
        nums1[i]=t;
        pos[t]=i;
    }
    for(int i=1;i<=n;i++){
        cin>>t;
        if(t)c.push_back(i);
    }

    // for(int i=1;i<=n;i++){
    //     cout<<pos[i]<<' ';
    // }
    // cout<<'\n';
    // for(int i=1;i<=n;i++){
    //     cout<<pos1[i]<<' ';
    // }
    // cout<<'\n';
    // for(int i=0;i<c.size();i++){
    //     cout<<c[i]<<' ';
    // }
    // cout<<'\n';
    // cout<<'\n';

    for(int i=0;i<int(c.size())-1;i++){
        if(pos[nums[c[i]]]>pos[nums[c[i+1]]]) return false;
        // for(int j=c[i]+1;j<c[i+1];j++){
        //     // cout<<j<<' ';
        //     if(pos[nums[j]]<pos[nums[c[i]]]||pos[nums[j]]>pos[nums[c[i+1]]])
        //         return false;
        // }
        // // cout<<'\n';
        // for(int j=pos[nums[c[i]]]+1;j<pos[nums[c[i+1]]];j++){
        //     // cout<<j<<' ';
        //     if(pos1[nums1[j]]<c[i]||pos1[nums1[pos[j]]]>c[i+1])
        //         return false;
        // }
        // // cout<<'\n';
    }
    return true;
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int _=1;
    cin>>_;
    while(_--){
        if(solve())cout<<"Yes"<<'\n';
        else cout<<"No"<<'\n';
    }
    return 0;
}